In recent years, various Solid State Drives (SSDs) have been developed as memory drives which are installed in computer systems. The SSDs include nonvolatile flash memories mounted thereon and have characteristics that the SSDs operate at a higher speed and are lower in weight as compared to hard disks.
Since the number of times the nonvolatile flash memories, especially NAND type flash memories, can be rewritten is limited, it is necessary to avoid frequent data access to specific regions. Therefore, reliability of the memory drives is secured by mounting volatile random access memories such as a Dynamic Random Access Memory (DRAM) on the memory drives and suppressing access to the nonvolatile flash memories. In addition, there is also a case where access performance of a memory drive is enhanced by placing user data and system data, which are frequently accessed, in a DRAM with shorter access latency than that of the NAND type flash memory. There is also a possibility that a Magnetoresistive Random Access Memory (MRAM) or an Ferroelectric Random Access Memory (FeRAM) is used instead of the DRAM.
In addition, there is a configuration in which an error correcting code (hereinafter, referred to as ECC data) is applied to data when data is written in the NAND type flash memory or the nonvolatile memory, and error detection and correction for the data is performed based on the ECC data when the data is read in order to enhance reliability of an SSD.
However, the MRAM, the FeRAM, and other future nonvolatile memory are likely to have lower reliability of data for a while after their mass production has started. Therefore, there is a high possibility that data cannot be corrected only using the ECC data stored in non-volatile memory.